import { createApp } from 'vue'
import App from './App.vue'
// 引入Svg相关文件
import 'virtual:svg-icons-register'
// 引入element-plus插件与样式
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
// 配置element-plus国际化
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
// import SvgIcon from "./components/SvgIcon/SvgIcon.vue";
// 引入设置全局组件的ts文件 --插件
import gloablComponent from './components/index'
// 引入全局的scss文件
import '@/styles/index.scss'
// 引入路由
import router from './router'
// 引入大仓库
import pinia from './store'
// 引入暗黑模式的样式
import 'element-plus/theme-chalk/dark/css-vars.css'

// 测试代码：测试mock接口的请求情况
import axios from 'axios'
// 引入路由鉴权文件
import './permisstion'
// 引入自定义指令
import { isHasButton } from './directive/has'

// 登录接口
axios({
  url: '/api/user/login',
  method: 'post',
  data: {
    username: 'admin',
    password: '111111',
  },
})

// 获取应用实例对象
const app = createApp(App)
// 注册自定义指令
isHasButton(app)
// 设置全局组件
app.use(gloablComponent)
// 注册路由
app.use(router)
// 安装大仓库
app.use(pinia)
// 安装element-plus插件
app.use(ElementPlus, {
  locale: zhCn,
})
// 设置全局组件
// app.component('SvgIcon', SvgIcon)
// 将应用挂载到挂载点上
app.mount('#app')
